<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Admin\Admin;	//引入admin模型
use Input;
class AdminController extends Controller
{
    //展示管理员列表（客户端形式）
    public function index(){
    	//查询管理员信息
    	$data = Admin::get();
    	//展示视图文件，并且携带参数
    	return view('admin.admin.index',['data' => $data]);
    }

    //展示管理员列表（服务端形式）
    public function async($mark = ''){
    	if($mark == 'ajax'){
    		//datatables异步请求
    		//分页的控制器
    		$start = Input::get('start');
    		$length = Input::get('length');
    		//排序控制
    		$orderMap = [
    			1	=>	'id',
    			2	=>	'username',
    			3	=>	'mobile',
    			4	=>	'email',
    			5	=>	'role_id',
    			6	=>	'created_at',
    			7	=>	'status'
    		];//前端表格的索引和字段名的映射关系
    		$orderBy = $orderMap[Input::get('order.0.column')];
    		$orderType = Input::get('order.0.dir');
    		//搜索控制
    		$keyword = Input::get('search.value');
 			//返回数据
 			return [
 				//请求计数器
 				'draw'				=>	(int) Input::get('draw'),	
 				//数据表中没有被过滤的总的记录数
 				'recordsTotal'		=>	Admin::count(),
 				//经过搜索的记录数
 				'recordsFiltered'	=>	Admin::when($keyword,function($query) use ($keyword){
 						return $query -> where('username','like', "%$keyword%");
 				}) -> count(),
 				//数据体
 				'data'				=>	Admin::limit($length) -> offset($start) -> orderBy($orderBy,$orderType) -> when($keyword,function($query) use ($keyword){
 						return $query -> where('username','like', "%$keyword%");
 				}) -> get(),
 			];
    	}else{
    		//展示视图文件
    		return view('admin.admin.async');
    	}
    }
}
